package chaoyue.study.io.stream;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 数据流
 * DataOutputStream 写入的文件带类型的 并不是普通的文本文件，专门用来写加密数据的
 * DataOutputStream 写入的文件只能用 DataInputStream读
 * 并且读的顺序要和写的顺序一样
 * 这边使用FileStream来构建DataStream，即最终把DataStream写入到文件中
 * 这个data是个二进制文件，不是文本文件，相当于序列化和反序列化的过程
 */
public class DataStream {
    public static void main(String[] args) throws Exception {
        // 写入文件
        DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("/Users/chaoyue/Downloads/data"));
        dataOutputStream.writeInt(2333);
        dataOutputStream.writeDouble(2333.32);
        dataOutputStream.writeLong(21);
        dataOutputStream.flush();
        dataOutputStream.close();
        // 读取文件
        DataInputStream dataInputStream = new DataInputStream(new FileInputStream("/Users/chaoyue/Downloads/data"));
        System.out.println(dataInputStream.readInt());
        System.out.println(dataInputStream.readDouble());
        System.out.println(dataInputStream.readLong());
        dataInputStream.close();
    }
}
